//
//  main.m
//  02-ClassAndObject
//
//  Created by dllo on 16/7/5.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //1.快捷键
        //command + 0 收起左边栏
        //command + operation（alt） + 0 手起右边栏
        //command + shift + Y 开启下边栏
        //command + R 运行
        //command + B 编译
        //command + c 复制
        //command + V 粘贴
        //command + shift + 左右 选中一行
        //移动光标
        //command + 左 移动到当前行的最左边
        //command + 右 移动到当前行的最右边
        //command + 上 移动到所有行的第一行
        //command + 下 移动到所有行的最后行
        
        //选中文字
        //shift +左 选中向左一个字
        //shift +右 选中向右一个字
        //shift +上 从当前的光标位置开始，选中向上一行
        
        //shift +下 从当前的光标位置开始，选中向下一行
        //command + shift + 左 选中从光标左边的所有文字
        
        //command + z 撤销
        //command + shift + z  反撤销

        
        //1.类和对象
        //类：一个具有相同特征的行为事物抽象集合
        //对象：类的实例，也称作类的实现。
        //面向对象的思想，万物皆对象
        //面向对象语言是面向对象思想的具体实现
        //oop面向对象的编程
        //ood面向对象设计
        //Objective-C 错误实例:Object-C object-c
        //与c语言的区别
        //oc属于c语言的扩展
        //oc有类的概念
        
        //oc中申明属性和方法 在.h中
        //oc中具体实现方法 在.m中
        //.mm 是C++的文件,在这个文件里面可以编写c++代码
        //面向对象的三大特征
        //封装继承多态提高代码的复用
        
        //创建类
        //command + n 创建
        //新建工程
//        command + shift+   n 
        //oc中的根类是NSObject
        
        
        //大括号中所包含的是类的成员
        //成员变量是实例变量
        //方法分为两种,加和减
        //加号方法是类方法,由类去调用
        //减号方法是实例方法,由对象去调用
        //返回值类型,方法名,参数
        //3.创建OC的实例
        //消息语法 [obj doSomething];
        //向obj 对象发送一个doSomething 的方法,让他去调用
        //类方法的调用(由类名去调用+方法)
        //开辟空间
//        NSObject *obj = [NSObject alloc];
        //实例方法的调用()
        //init,初始化
//       NSObject *newObj = [obj init];
        //创建一个对象
        Person *per = [[Person alloc]init];
        per->_name = @"王尼玛";
        NSLog(@"%@",per->_name);
        
        //per->_age = 10; //age 是受保护的成员变量无法赋值
        //id 和instancetype 的区别
        //instancetype在作为参数返回值的时候与id是一样的,系统图编译器会把id类型转化为instancetype(即当前对象类型)
        //id可以作为变量类型去使用,但instancetype不可以
//        id object =  [[NSObject alloc]init];
        
    
    
    }
    return 0;
}
